document.addEventListener("DOMContentLoaded", function () {
    console.log("registro.js cargado correctamente");

    // Navbar: Ocultar menú al hacer clic en un enlace
    const navLinks = document.querySelectorAll(".navbar-nav .nav-link");
    const navbarCollapse = document.getElementById("navbarNav");

    if (navbarCollapse) {
        const bsCollapse = new bootstrap.Collapse(navbarCollapse, { toggle: false });
        navLinks.forEach(link => {
            link.addEventListener("click", () => {
                if (navbarCollapse.classList.contains("show")) {
                    bsCollapse.hide();
                }
            });
        });
    }

    // Funciones para limpiar formularios
    function clearForm(formId) {
        document.getElementById(formId)?.reset();
    }

    // Manejo de modales
    const loginModal = document.getElementById("loginModal");
    const registerModal = document.getElementById("registerModal");

    if (loginModal) {
        loginModal.addEventListener("hidden.bs.modal", () => clearForm("loginForm"));
    }
    if (registerModal) {
        registerModal.addEventListener("hidden.bs.modal", () => clearForm("registerForm"));
    }

    // Manejo del formulario de registro
    const registerForm = document.getElementById("registerForm");
    if (registerForm) {
        registerForm.addEventListener("submit", function (e) {
            e.preventDefault();
            console.log("Formulario de registro enviado");

            const formData = new FormData(this);
            const password = formData.get("contrasena") || "";
            const confirmPassword = formData.get("confirmarContrasena") || "";

            if (!password || !confirmPassword) {
                alert("Por favor, completa ambos campos de contraseña.");
                return;
            }

            if (password !== confirmPassword) {
                alert("Las contraseñas no coinciden.");
                return;
            }

            fetch("Ajax/registro.php", { method: "POST", body: formData })
                .then(response => response.text())
                .then(text => {
                    try {
                        const data = JSON.parse(text);
                        if (data.status === "success") {
                            alert(data.message);
                            registerForm.reset();
                            bootstrap.Modal.getInstance(registerModal)?.hide();
                            setTimeout(() => new bootstrap.Modal(loginModal).show(), 500);
                        } else {
                            alert(data.message || "Error al registrar usuario.");
                        }
                    } catch (error) {
                        console.error("Error al parsear JSON:", error, "\nRespuesta del servidor:", text);
                        alert("El servidor no respondió con un JSON válido.");
                    }
                })
                .catch(error => {
                    console.error("Error en fetch:", error);
                    alert("Ocurrió un error al procesar el registro.");
                });
        });
    }
 //Manejo del login
  document.getElementById('loginForm').addEventListener('submit', function (e) {
    e.preventDefault();

    const correo = document.getElementById("correo")?.value.trim();
    const password = document.getElementById("password")?.value.trim();

    if (!correo || !password) {
        alert("Por favor, complete todos los campos.");
        return;
    }

    const formData = new FormData();
    formData.append("correo", correo);
    formData.append("password", password);

    console.log("Datos enviados:", Object.fromEntries(formData)); // Verifica los datos antes de enviarlos

    fetch('Ajax/login.php', {
        method: 'POST',
        body: formData
    })
    .then(response => response.text()) // Capturar texto en crudo
    .then(text => {
        console.log("Respuesta del servidor:", text); // Imprimir lo recibido
        let data;
        try {
            data = JSON.parse(text);
        } catch (error) {
            console.error("Error al parsear JSON:", error);
            alert("Error en la respuesta del servidor.");
            return;
        }

        if (data.status === "success") {
            alert("Inicio de sesión exitoso.");
            window.location.href = data.redirect;
        } else {
            alert(data.message);
        }
    })
    .catch(error => {
        console.error("Error en fetch:", error);
        alert("Ocurrió un error al procesar el inicio de sesión.");
    });
});

    // Cambio entre modales (Registro <-> Login)
    document.getElementById("showLoginForm")?.addEventListener("click", function (e) {
        e.preventDefault();
        bootstrap.Modal.getInstance(registerModal)?.hide();
        clearForm("registerForm");
        setTimeout(() => new bootstrap.Modal(loginModal).show(), 300);
    });

    document.getElementById("showRegisterForm")?.addEventListener("click", function (e) {
        e.preventDefault();
        bootstrap.Modal.getInstance(loginModal)?.hide();
        clearForm("loginForm");
        setTimeout(() => new bootstrap.Modal(registerModal).show(), 300);
    });
});
